package com.lap.framework.exception;

import com.lap.framework.domain.Msg;
import lombok.Getter;
import lombok.Setter;

/**
 * <pre>
 *  业务异常
 * </pre>
 *
 * @author Shuisheng.Lao
 * @version 1.0.0
 */
@Getter
@Setter
public final class BizException extends RuntimeException {
    /**
     * 异常码,建议使用字符串
     */
    private final String code;
    /**
     * 异常信息
     */
    private final String msg;

    /**
     * <pre>
     *  根据异常码构造函数
     * </pre>
     *
     * @param code 异常码
     */
    public BizException(String code) {
        this(code, "not msg.");
    }

    /**
     * <pre>
     *  根据异常码和错误信息构造函数
     * </pre>
     *
     * @param code 异常码
     * @param msg  错误信息
     */
    public BizException(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * <pre>
     * 根据封装的对象创建构造函数
     * </pre>
     *
     * @param msg 异常信息
     */
    public BizException(Msg msg) {
        this(msg.getCode(), msg.getMsg());
    }

}
